什麼是 Celery Beat?
Celery Beat 是 Celery 的一個附加元件,它用於排程定期執行的任務。這些任務可以是清理工作、報告生成、或其他需要在固定時間執行的工作。Celery Beat 允許你在後台自動調度這些任務,而不需要手動觸發它們。
步驟 1:安裝 Celery Beat
在前一篇文章中,我們已經安裝了 Celery。現在,我們需要安裝 Celery Beat。你可以使用 pip 安裝它:
pip install celery[beat]
步驟 2:設置 Celery Beat
接下來,我們需要在 Celery 專案中設置 Celery Beat。為此,我們將在專案目錄中創建一個名為 celery.py 的 Python 檔案,然後配置 Beat。
from celery import Celery
from celery.schedules import crontab
app = Celery('celery_example', broker='pyamqp://guest@localhost//')
app.conf.beat_schedule = {
'my-scheduled-task': {
'task': 'celery_example.my_scheduled_task',
'schedule': crontab(minute=0, hour=0), # 每天半夜執行
},
}
@app.task
def my_scheduled_task():
# 這是一個定期執行的任務,在這裡執行你的任務邏輯
pass
在這個例子中,我們首先定義了一個名為 my-scheduled-task 的 Celery 任務,並將它設置為每天半夜執行。你可以根據需求自訂你的定期執行任務。
步驟 3:啟動 Celery Beat
現在,你可以啟動 Celery Beat 調度器,以便它能夠按照設定的排程執行你的任務:
celery -A celery_example beat --loglevel=info
這會啟動 Celery Beat,它將根據配置的排程定期執行你的任務。